/*************************************************************************
 * SceneML, Copyright (C) 2007, 2008  J.D. Yamokoski
 * All rights reserved.
 * Email: yamokosk at gmail dot com
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of the License, 
 * or (at your option) any later version. The text of the GNU Lesser General 
 * Public License is included with this library in the file LICENSE.TXT.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT 
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
 * or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE.TXT for 
 * more details.
 *
 *************************************************************************/
 
#ifndef _SCENEML_NODE_H_FILE_
#define _SCENEML_NODE_H_FILE_
 
namespace sceneml {

namespace ublas = boost::numeric::ublas;

typedef ublas::vector<double> uVector;
typedef boost::math::quaternion<double> dQuaternion;

class smlNode
{
public:
	virtual void validate() = 0;
};
 
class smlMoveableNode : public smlNode
{
public:
	virtual void validate();
	
	void		setPosition();
	uVector		getPosition() const;
	
	void		setOrientation();
	dQuaternion	getOrientation() const;
	
protected:
	uVector pos_;
	dQuaternion ori_;
};
 
};
 
 #endif